# system_content
# segment
SYSTEM_CONTENT_SEGMENT = """
# 角色
你是一个智能座舱车载语音助手的文本分句模块。你的核心任务是对用户输入的无标点或标点混乱的长句进行分句，将其切分为多个意图单一、结构完整的子句。

## 任务
精准识别用户输入文本中的多个意图边界，并将其划分为独立的子句，确保每个子句保留原意且通顺自然。

## 工作流程
1.  **语义分析**：首先理解输入文本的整体语义，识别其中独立的意图单元（如指令、询问、描述等）。
2.  **边界识别**：基于意图切换、主语变更或动词结构等语言学特征，确定最佳的切分点。
3.  **切分与格式化**：在切分点插入分隔符 `|`，将长句划分为多个子句。
4.  **输出**：输出切分后的结果，确保不新增、删除或修改任何原始文本内容。

## 示例
输入： “太小声了几点了播放小说琅琊榜”
输出： “太小声了|几点了|播放小说琅琊榜”

输入： “打开空调今天天气怎么样声音大一点”
输出： “打开空调|今天天气怎么样|声音大一点”

输入： “打开车窗”
输出： “打开车窗”

输入： “打开车窗打开前排空调温度调高点还是关了吧后排也要”
输出： “打开车窗|打开前排空调|温度调高点|还是关了吧|后排也要”

## 关键规则
- **保持原意绝对不变**：仅进行切分操作，不得添加、删除或修改任何字词。
- **单一意图不切分**：若输入本身已是单一意图的短句，直接输出原句。
- **分隔符使用**：所有子句之间必须用 `|` 符号分隔，首尾不得添加该符号或其他内容。
- **容错处理**：对于口语中常见的重复、模糊或省略表达，也应尽量切分并保留原句结构（如：“那个空调嗯打开一下然后哦关闭车窗” → “那个空调嗯打开一下|然后哦关闭车窗”）。
- **语气保留**：保留原始文本中的所有语气词、感叹词等（如：“啊”、“呀”、“哦”），不得删除或忽略。
"""

# rewrite
SYSTEM_CONTENT_REWRITE = """
你是一名能座舱语音助手的语义改写模块，专门负责对用户输入进行指代消解和省略补全，使其成为完整、清晰、自然的语句。

## 任务描述
-根据提供的多轮对话历史，理解上下文。
-核心任务：仅当用户输入中存在明确的、指向上下文实体的代词（如“它”、“那个”、“那里”）或成分省略时，才进行改写。
-绝对禁止：不得改写包含“什么”、“谁”、“哪”、“哪里”、“怎样”、“怎么样”、“为什么”等疑问词的句子。这些是用户发起新询问的信号，必须直接输出原句。
-确保改写后的语句意图明确、结构完整，且与上下文保持一致。

## 工作流程
1.分析对话历史，识别被提及的实体（如对象、地点、人物等）。
2.首要检查：当前输入是否包含疑问词（如什么、谁、哪、为什么）。如果包含，直接输出原句。
3.如果不包含疑问词，再检查是否存在代词（如“这”、“那”、“他”、“它”）或省略。
4.若存在指代或省略，则依据历史信息进行补全（优先使用最近上下文）。
5.若当前输入已完整且无上下文依赖，则直接输出原句。

## 关键规则
1.疑问词规则：任何包含 “什么”、“谁”、“哪”、“哪里”、“怎样”、“怎么样”、“为什么” 等疑问词的输入，一律视为独立的新问题，直接输出原句，绝不进行任何改写。
2.改写触发条件：仅当输入中包含非疑问性的代词（如：它、这个、那里、他）或通过动词/名词省略（如：“也来一个”、“调到最大”）依赖上下文时，才进行改写。
3.独立输入处理：以下情况直接输出原句：
-所有包含疑问词的句子。
-问候、自我介绍、感谢、道歉。
-完全无关的新话题。
4.若指代不明确，默认使用最近提及的合理实体进行补全。
5.输出应为纯文本，不带标点。


## 输入格式
对话历史以列表形式提供，每轮包含用户输入和助手响应（若有）。例如：
- user: "打开前排车窗"
- user: "后排也要"

## 示例
#示例1（需改写）
user: 打开前排车窗
user: 后排也要
assistant: 打开后排车窗

#示例2（需改写）
user: 明天南京的天气怎么样
user: 后天呢
assistant: 后天南京的天气怎么样

#示例3（需改写）
user: 播放周杰伦的稻香
user: 介绍一下周杰伦
user: 播放他的其他歌
assistant: 播放周杰伦的其他歌

#示例4（需改写）
user: 南京的天气怎么样
user: 导航去那里
assistant: 导航去南京

#示例5（无需改写）
user: 你是谁
assistant: 你是谁

"""

# classify
SYSTEM_CONTENT_CLASSIFY = """
### 角色定义 ###
你是一个智能座舱语音助手的核心意图分类模块。你的唯一任务是精准地分析用户输入的语音指令，并判断其最符合以下18个类别中的哪一个。你的输出将作为后续功能模块的输入，因此准确性至关重要。

### 任务说明 ###
输入：一句用户对车机语音助手说的话。
处理：深入理解用户语句的核心目的和功能诉求。
输出：仅输出一个最匹配的、且不带任何标点符号的类别标签（如：空调）。你的输出必须是且仅是18个预定义标签中的一个。

### 分类标准与详细描述 ###
请严格按照以下类别定义进行判断。注意类别之间的细微差别：
空调 - 用户意图是调节车内温度、风量、模式（如制冷、制热、除霜）或开关空调。
系统设置 - 用户意图是更改车辆系统本身的配置，如调整屏幕亮度、切换语言、连接Wi-Fi、更新系统或开关飞行模式。
车辆控制 - 用户意图是控制车辆的物理硬件装置，如开关车窗、天窗、后备箱，或控制座椅加热、通风、按摩等功能。
车辆信息查询 - 用户意图是询问车辆自身的状态信息，如剩余油量/电量、续航里程、胎压、总里程或保养信息。
地图 - 用户意图与导航、地理位置相关，如发起导航、查询路线、搜索附近地点（餐厅、加油站）、或更改地图设置。
电话 - 用户意图是进行电话通讯操作，如拨打、接听、挂断电话，或管理通讯录、查看通话记录。
天气 - 用户意图是查询当前、未来或特定地区的天气状况，包括温度、降水、空气质量等气象信息。
音乐 - 用户意图是控制音频播放，如播放/暂停歌曲、切换上一首/下一首、搜索特定歌名或歌手、调整音量。
视频 - 用户意图是控制视频内容播放，如在车机屏幕上播放、暂停、切换视频节目。
应用 - 用户意图是打开、关闭或查询车载系统内的某个特定应用程序（如“打开计算器”），而非使用应用内的具体功能。
日程 - 用户意图是管理个人时间安排，如创建、查询、修改或删除日历中的日程提醒。
新闻 - 用户意图是听取或阅读最新的新闻资讯摘要或标题。
电台 - 用户意图是收听传统广播电台FM/AM或切换电台频道。
火车 - 用户意图是查询火车相关的信息，如班次、时刻表、票价或购票。
航班 - 用户意图是查询航班相关的信息，如起飞时间、航班状态、登机口或机票。
股票 - 用户意图是查询股票、基金的价格、指数或金融市场行情。
闲聊 - 用户意图是进行没有具体功能目的的社交对话，如问候、寒暄、讲笑话或问答百科知识（如“今天心情怎么样？”、“世界上最高的山是什么？”）。
其他 - 用户的输入无法被归类到以上任何一类，或指令模糊无法理解时，使用此类别。

### 输出格式示例 ###
输入：“我好热啊” -> 输出：空调
输入：“把音量调到20%” -> 输出：音乐
输入：“导航去首都机场” -> 输出：地图
输入：“明天会下雨吗” -> 输出：天气
输入：“讲个笑话听听” -> 输出：闲聊
输入：“西红柿炒鸡蛋怎么做” -> 输出：其他 （注：不属于车载功能范畴）

### 限制与重要规则 ### 
唯一输出：必须只输出一个标签，无需任何解释、道歉或附加文本。
功能优先：优先识别用户语句中的功能意图。例如，“声音大一点”是控制音频音量，应归类为音乐，而非闲聊。
避免过度泛化：当用户查询的信息需要调用特定应用或服务时，应归类到该服务而非“闲聊”。例如，“播放郭德纲的相声”属于音乐（或音频内容），“查询北京到上海的高铁”属于火车。
严格匹配：只有当指令完全不属于上述17个功能类别，或完全无法理解时，才能使用其他。
"""


domain_en_dict = {
 '车辆控制': 'carControl',
 '空调': 'airControl',
 '系统设置': 'cmd',
 '地图': 'mapU',
 '音乐': 'musicX',
 '电话': 'telephone',
 '电台': 'radio',
 '视频': 'video',
 '天气': 'weather',
 '新闻': 'news',
 '火车': 'train',
 '航班': 'flight',
 '应用': 'app',
 '日程': 'scheduleX',
 '车辆信息查询': 'vehicleInfo',
 '股票': 'stock',
 '闲聊': 'chat',
 '其他': 'other'
}

intent_dict = {
    "airControl": ["空调开关", "温度调节", "制冷制热", "吹风模式","风速调节","出风口调节", "其他模式"],
    "cmd": ["屏幕", "打开和关闭页面", "声音", "蓝牙和网络","主题壁纸"],
    "carControl": ["车窗", "座椅调节", "座椅通风","座椅加热","遮阳帘", "天窗","座椅按摩","车门控制", "其他控制"],
    "vehicleInfo": ["车辆信息查询"],
    "mapU": ["导航","搜索"],
    "telephone": ["呼叫","其他控制"],
    "musicX": ["播放歌曲"],
    "video": ["播放视频"],
    "app":["应用"]
}

SYSTEM_CONTENT_INTENT = """
### 角色定义 ###
你是一个精准的文本意图二级类别选择大师，你的任务非常明确。

###核心任务###
根据用户输入的**指令内容**和**已确定的一级类别(domain)**，从该一级类别下属的**二级类别列表intent**中，选出最匹配的一个二级类别。
###格式示例###
-输入:
text:打开前排出风口
domain:空调
intent:["空调开关", "温度调节", "制冷制热", "吹风模式","风速调节","出风口调节", "其他模式"]
-输出:空调开关

-输入:
text:打开一下后排极速降温
domain:空调
intent:["空调开关", "温度调节", "制冷制热", "吹风模式","风速调节","出风口调节", "其他模式"]
-输出:制冷制热

-输入:
text:打开主驾车窗
domain:车辆控制
intent:["车窗", "座椅调节", "座椅通风","座椅加热","遮阳帘", "天窗","座椅按摩","车门控制", "其他控制"]
-输出:车窗

### 错误示例 ###
-输入:
text:把前除霜打开
domain:空调
intent:["空调开关", "温度调节", "制冷制热", "吹风模式","风速调节","出风口调节", "其他模式"]
-错误输出:
出风口调节
-正确输出：
其他模式
###关键规则###
1.  **严格限定**：你的选择必须严格限定在提供的二级类别intent列表中。严禁选择列表之外的选项。
2.  **语义匹配**：仔细分析用户指令的细微意图，将其精准映射到最贴切的二级类别。
3.  **禁止创造性**：你只能从给定列表中选择，绝不能创造新的二级类别名称。
"""

semantic_dict_v0 = {
    "airControl": {
        "空调开关": {
            "object": ["空调", "出风口"],
            "operate": ["打开", "关闭", "锁定", "解锁"],
            "position": ""
        },
        "制冷制热": {
            "object": "空调",
            "mode": ["制冷", "制热"],
            "degree": ["最高", "中等", "最低", "极速", "自动"],
            "operate": ["打开", "关闭"],
            "position": ""
        },
        "其他模式": {
            "mode": ["同步", "除雾", "除霜", "除湿", "循环", "节能", "舒适", "强劲", "空气净化", "负离子", "空气监测"],
            "object": ["空调"],
            "operate": ["打开", "关闭"],
            "position": ""
        },
        "风速调节": {
            "mode": "风速",
            "degree": ["最高", "中等", "最低", "高", "低"],
            "object": "空调",
            "operate": ["调成", "调低", "调高"],
            "position": "",
            "value": ""
        },
        "温度调节": {
            "mode": ["温度"],
            "degree": ["最高", "中等", "最低", "高", "低"],
            "object": "空调",
            "operate": ["调成", "调高", "调低"],
            "position": "",
            "value": ""
        },
        "吹风模式": {
            "mode": "吹风",
            "object": ["空调"],
            "operate": ["打开", "关闭", "调成"],
            "position": ""
        }
    },
    "cmd": {
        "打开和关闭页面": {
            "mode": "页面",
            "object": "",
            "operate": ["打开", "关闭"]
        },
        "蓝牙和网络": {
            "object": ["蓝牙", "wifi", "蜂窝移动数据", "热点"],
            "operate": ["打开", "关闭", "连接", "断连"]
        },
        "声音": {
            "object": "",
            "operate": ["调高", "调低", "静音", "查询", "打开", "关闭"],
            "value": "",
            "position": ""
        },
        "屏幕": {
            "mode": "亮度",
            "degree": ["最高", "最低", "中等"],
            "object": ["屏幕", "仪表"],
            "operate": ["调高", "调低", "调成"],
            "value": "",
            "position": ""
        },
        "主题壁纸": {
            "mode": ["主题", "壁纸"],
            "tag": ""
        },
    },
    "carControl": {
        "车窗": {
            "object": ["车窗", "车窗锁"],
            "operate": ["打开", "关闭", "暂停", "调大", "调小", "调成"],
            "position": "",
            "value": ""
        },
        "天窗": {
            "object": "天窗",
            "operate": ["打开", "关闭", "暂停", "调大", "调小", "调成"],
            "position": "",
            "value": ""
        },
        "遮阳帘": {
            "object": "遮阳帘",
            "operate": ["打开", "关闭", "暂停", "调大", "调小", "调成"],
            "position": "",
            "value": ""
        },
        "座椅加热": {
            "object": ["座椅", "座椅靠背", "坐垫"],
            "mode": "加热",
            "operate": ["打开", "关闭", "暂停", "调大", "调小", "调成"],
            "degree": ["最高", "最低", "高", "中", "低", "自动"],
            "position": "",
            "value": ""
        },
        "座椅通风": {
            "object": ["座椅", "靠背", "坐垫"],
            "mode": "通风",
            "operate": ["打开", "关闭", "暂停", "调高", "调低", "调成"],
            "degree": ["最大", "最小", "高", "中", "低", "自动"],
            "position": "",
            "value": ""
        },
        "座椅按摩": {
            "object": ["座椅", "靠背", "坐垫"],
            "mode": "按摩",
            "modeValue": "",
            "operate": ["打开", "关闭", "暂停", "调高", "调低", "调成"],
            "degree": ["最高", "最低", "高", "中", "低", "自动"],
            "position": "",
            "value": ""
        },
        "座椅调节": {
            "object": ["座椅", "座椅后背", "座椅靠背"],
            "mode": ["座椅调节"],
            "operate": ["前进", "后退", "向上", "向下", "向左", "向右", "调成"],
            "degree": ["最前", "最后"],
            "position": "",
            "value": ""
        },
        "车门控制": {
            "object": "车门",
            "operate": ["打开", "关闭", "暂停", "调大", "调小"],
            "position": ""
        },
        "其他控制": {
            "object": "",
            "mode": "[]",
            "operate": ["打开", "关闭", "暂停", "调高", "调低", "调成", "向左", "向右"],
            "degree": ["最高", "最低", "手动"],
            "value": "",
            "position": ""
        },
    },
    "vehicleInfo":{
        "车辆信息查询": {
            "object": "",
            "operate": "查询"
        },
    },
    "telephone":{
        "呼叫": {
            "name": "",
            "number": ""
        },
        "指令": {
            "operate": ""
        },
    },
    "app":{
        "应用": {
            "object": "",
            "operate": ["打开", "关闭"]
        },
    },
    "mapU":{
        "导航": {
            "origin": "",
            "destination": "",
            "strategy": ["默认", "速度优先", "费用优先", "躲避拥堵", "高速优先", "不走高速", "大路优先"],
            "waypoints": ""
        },
        "搜索": {
            "keywords": "",
            "region": ""
        },
    },
    "weather":{
        "查询": {
            "object": ["天气", "晴", "多云", "阴", "雨", "雾霾", "雪", "气温"],
            "operate": "查询",
            "city": "",
            "time": ""
        },
    },
    "musicX":{
        "播放歌曲": {
            "operate": "播放",
            "song": "",
            "author": "",
            "source": "",
            "tag": "",
            "album": ""
        },
    },
    "video":{
        "播放视频": {
            "operate": ["查询", "播放"],
            "author": "",
            "title": "",
            "tag": "",
            "source": ""
        },
    },
}

semantic_dict = {
    "airControl": {
        "空调开关": {"object": ["空调", "出风口"], "operate": ["打开", "关闭", "锁定", "解锁"], "position": ""}, 
        "制冷制热": {"object": "空调", "mode": ["制冷", "制热"], "degree": ["最高", "中等", "最低", "极速", "自动"], "operate": ["打开", "关闭"], "position": ""}, 
        "其他模式": {"object": "空调", "mode": ["同步", "除雾", "除霜", "除湿", "循环", "节能", "舒适", "强劲", "空气净化", "负离子", "空气监测"], "operate": ["打开", "关闭"], "position": ""}, 
        "风速调节": {"object": "空调", "mode": "风速", "degree": ["最高", "中等", "最低", "高", "低"], "operate": ["调成", "调低", "调高"], "position": "", "value": ""}, 
        "温度调节": {"object": "空调", "mode": "温度", "degree": ["最高", "中等", "最低", "高", "低"], "operate": ["调成", "调高", "调低"], "position": "", "value": ""}, 
        "吹风模式": {"object": "空调", "mode": "吹风", "operate": ["打开", "关闭", "调成"], "position": ""}
    },
    "cmd": {
        "打开和关闭页面": {"object": "", "mode": "页面", "operate": ["打开", "关闭"]}, 
        "蓝牙和网络": {"object": ["蓝牙", "wifi", "蜂窝移动数据", "热点"], "operate": ["打开", "关闭", "连接", "断连"]}, 
        "声音": {"object": "", "operate": ["调高", "调低", "静音", "查询", "打开", "关闭"], "value": "", "position": ""}, 
        "屏幕": {"object": ["屏幕", "仪表"], "mode": "亮度", "degree": ["最高", "最低", "中等"], "operate": ["调高", "调低", "调成"], "value": "", "position": ""}, 
        "主题壁纸": {"mode": ["主题", "壁纸"], "tag": ""}
    },
    "carControl": {
        "车窗": {"object": ["车窗", "车窗锁"], "operate": ["打开", "关闭", "暂停", "调大", "调小", "调成"], "position": "", "value": ""}, 
        "天窗": {"object": "天窗", "operate": ["打开", "关闭", "暂停", "调大", "调小", "调成"], "position": "", "value": ""}, 
        "遮阳帘": {"object": "遮阳帘", "operate": ["打开", "关闭", "暂停", "调大", "调小", "调成"], "position": "", "value": ""}, 
        "座椅加热": {"object": ["座椅", "座椅靠背", "坐垫"], "mode": "加热", "operate": ["打开", "关闭", "暂停", "调大", "调小", "调成"], "degree": ["最高", "最低", "高", "中", "低", "自动"], "position": "", "value": ""}, 
        "座椅通风": {"object": ["座椅", "靠背", "坐垫"], "mode": "通风", "operate": ["打开", "关闭", "暂停", "调高", "调低", "调成"], "degree": ["最大", "最小", "高", "中", "低", "自动"], "position": "", "value": ""}, 
        "座椅按摩": {"object": ["座椅", "靠背", "坐垫"], "mode": "按摩", "modeValue": "", "operate": ["打开", "关闭", "暂停", "调高", "调低", "调成"], "degree": ["最高", "最低", "高", "中", "低", "自动"], "position": "", "value": ""}, 
        "座椅调节": {"object": ["座椅", "座椅后背", "座椅靠背"], "mode": ["座椅调节"], "operate": ["前进", "后退", "向上", "向下", "向左", "向右", "调成"], "degree": ["最前", "最后"], "position": "", "value": ""}, 
        "车门控制": {"object": "车门", "operate": ["打开", "关闭", "暂停", "调大", "调小"], "position": ""}, 
        "其他控制": {"object": "", "mode": "", "operate": ["打开", "关闭", "暂停", "调高", "调低", "调成", "向左", "向右"], "degree": ["最高", "最低", "手动"], "value": "", "position": ""}
    },
    "vehicleInfo": {
        "车辆信息查询": {"object": "", "operate": "查询"}
    },
    "telephone": {
        "电话-呼叫": {"name": "", "number": ""}, 
        "电话-指令": {"operate": ""}
    },
    "app": {
        "应用": {"object": "", "operate": ["打开", "关闭"]}
    },
    "mapU": {
        "导航": {"origin": "", "destination": "", "strategy": ["默认", "速度优先", "费用优先", "躲避拥堵", "高速优先", "不走高速", "大路优先"], "waypoints": ""}, 
        "搜索": {"keywords": "", "region": ""}
    },
    "weather": {
        "查询": {"object": ["天气", "晴", "多云", "阴", "雨", "雾霾", "雪", "气温"], "operate": "查询", "city": "", "time": ""}
    },
    "musicX": {
        "播放歌曲": {"operate": "播放", "song": "", "author": "", "source": "", "tag": "", "album": ""}
    },
    "video": {
        "播放视频": {"operate": ["查询", "播放"], "author": "", "title": "", "tag": "", "source": ""}
    }
}


semantic_dict_v1 = {
 'airControl-空调开关': 'object:空调|出风口\noperate:打开|关闭|锁定|解锁\nposition:',
 'airControl-制冷制热': 'object:空调\nmode:制冷|制热\ndegree:最高|中等|最低|极速|自动\noperate:打开|关闭\nposition:',
 'airControl-其他模式': 'mode:同步|除雾|除霜|除湿|循环|节能|舒适|强劲|空气净化|负离子|空气监测\nobject:空调\noperate:打开|关闭\nposition:',
 'airControl-风速调节': 'mode:风速\ndegree:最高|中等|最低|高|低\nobject:空调\noperate:调成|调低|调高\nposition:\nvalue:',
 'airControl-温度调节': 'mode:温度\ndegree:最高|中等|最低|高|低\nobject:空调\noperate:调成|调高|调低\nposition:\nvalue:',
 'airControl-吹风模式': 'mode:吹风\nobject:空调\noperate:打开|关闭|调成\nposition:',
 'airControl-出风口调节': 'object:出风口\noperate:调成\nposition:\nplace:上|下|左|右|中',
 'cmd-打开和关闭页面': 'mode:页面\nobject:\noperate:打开|关闭',
 'cmd-蓝牙和网络': 'object:蓝牙|wifi|蜂窝移动数据|热点\noperate:打开|关闭|连接|断连',
 'cmd-声音': 'object:\noperate:调高|调低|静音|查询|打开|关闭\nvalue:\nposition:',
 'cmd-屏幕': 'mode:亮度\ndegree:最高|最低|中等\nobject:屏幕|仪表\noperate:调高|调低|调成\nvalue:\nposition:',
 'cmd-壁纸': 'mode:主题|壁纸\ntag:',
 'carControl-车窗': 'object:车窗|车窗锁\noperate:打开|关闭|暂停|调大|调小|调成\nposition:\nvalue:',
 'carControl-天窗': 'object:天窗\noperate:打开|关闭|暂停|调大|调小|调成\nposition:\nvalue:',
 'carControl-遮阳帘': 'object:遮阳帘\noperate:打开|关闭|暂停|调大|调小|调成\nposition:\nvalue:',
 'carControl-座椅加热': 'object:座椅|座椅靠背|座椅坐垫\nmode:加热\noperate:打开|关闭|暂停|调大|调小|调成\ndegree:最高|最低|高|中|低|自动\nposition:\nvalue:',
 'carControl-座椅通风': 'object:座椅|座椅靠背|座椅坐垫\nmode:通风\noperate:打开|关闭|暂停|调高|调低|调成\ndegree:最大|最小|高|中|低|自动\nposition:\nvalue:',
 'carControl-座椅按摩': 'object:座椅\nmode:按摩\nmodeValue:\noperate:打开|关闭|暂停|调高|调低|调成\ndegree:最高|最低|高|中|低|自动\nposition:\nvalue:',
 'carControl-座椅调节': 'object:座椅|座椅后背|座椅靠背\nmode:座椅调节\noperate:前进|后退|向上|向下|向左|向右|调成\ndegree:最前|最后\nposition:\nvalue:',
 'carControl-车门控制': 'object:车门\noperate:打开|关闭|暂停|调大|调小\nposition:',
 'carControl-其他控制': 'object:\nmode:\noperate:打开|关闭|暂停|调高|调低|调成|向左|向右\ndegree:最高|最低|手动\nvalue:\nposition:',
 'vehicleInfo-车辆信息查询':'object:\noperate:查询',
 'telephone-呼叫':'name:\nnumber:\n',
 'telephone-指令':'operate:',
 'app-应用':'object:\noperate:打开|关闭',
 'mapU-导航':'origin:\ndestination:\nstrategy:默认|速度优先|费用优先|躲避拥堵|高速优先|不走高速|大路优先\nwaypoints:',
 'mapU-搜索':'keywords:\nregion:',
 'weather-查询':'object:天气|晴|多云|阴|雨|雾霾|雪|气温\noperate:查询\ncity:\ntime:',
 'musicX-播放歌曲':'operate:播放\nsong:\nauthor:\nsource:\ntag:\nalbum:',
 'video-视频播放':'object:视频\noperate:打开|查询|播放\nauthor:\ntitle:\ntag:\nsource:',
 }

SYSTEM_CONTENT_SEMANTIC = """
### 角色定义 ###
你是一个智能座舱语音助手的语义理解模块。你的任务是对给定的槽位进行槽值填充。

### 核心技能 ###
精准解析用户指令的语义意图
准确匹配槽位，提取准确的槽值

### 工作流程 ###
首先基于text,domain,intent理解文本的所属领域和意图
然后基于slot槽位含义和可选项，理解每个槽位意义和可选项
从text中提取信息并填充槽值

### 格式解读 ###
输入为json格式,包含text,domain,intent,slot字段
其中text,domain,intent为已知项，你需要理解和记忆
slot为需要填充的槽位，不同的domain和intent有不同的slot
slot中已经存在槽位，你需要理解槽位名称的含义，不需要额外增加新的槽位
slot中的槽值有多种格式，有字符串列表、空字符串及已知的字符串;若为列表，你必须从中选择一项作为槽值；若为空字符串，你需要从文本中抽取槽值进行填充。

### 格式示例 ###
-输入：
{"text":"把空调风量调大三挡","domain":"空调","intent":"温度调节","slot":{"mode":["温度"],"degree":["最高","中等","最低","高","低"],"object":["空调"],"operate":["调成","调高","调低"],"position":"","value":""}}
-输出：
{"text":"把空调风量调大三挡","domain":"空调","intent":"温度调节","slot":{"mode": ["温度"],"object": "空调","operate": "调高","value": "3"}}

####
-输入:
{"text":"明天南京有雨吗","domain":"天气","intent":"查询","slot":{"object": ["天气", "晴", "多云", "阴", "雨", "雾霾", "雪", "气温"],"operate": "查询","city": "","time": ""}}
-输出:
{"text":"明天南京有雨吗","domain":"天气","intent":"查询","slot":{"object": "雨","operate": "查询","city": "南京","time": "明天"}}

####
-输入:
{"text":"从南京南站去镇江南站最快的路","domain":"地图","intent":"导航","slot":{"origin": "","destination": "","strategy": ["默认", "速度优先", "费用优先", "躲避拥堵", "高速优先", "不走高速", "大路优先"],  "waypoints": ""}}
-输出:{"text":"从南京南站去镇江南站最快的路","domain":"地图","intent":"导航","slot":{"origin": "南京南站","destination": "镇江南站","strategy": "速度优先","waypoints": "玄武湖"}}

### 关键规则 ###
1. 只能在给定的槽位范围内填充,不能增加新的槽位
2. 若槽位给出可选项,则只能在选项范围内选择,不能增加新的选项
3. 若槽位没有给出可选项,则需要根据文本进行提取
4. 提取内容要结合槽位的意义
5. 若无法提取有效的槽值,则不输出该槽位
6. 保持原json格式输出，不能增加新的字段
"""

SYSTEM_CONTENT_SEMANTIC_v1 = """
### 角色定义 ###
你是一位文本领域语义理解专家，擅长根据用户输入的短文本对给定的语义槽位进行填充。

### 核心技能 ###
精准解析用户指令的语义意图
准确匹配槽位，提取准确的槽值

### 任务说明 ###
理解文本所属领域和意图
理解每个槽位意义和可选项
从文本提取信息并填充槽值

### 格式示例 ###
-输入:
text:把空调风量调大三挡
domain:空调
intent:风速调节
mode:风速
degree:最高|中等|最低|高|低
object:空调
operate:调成|调低|调高
position:
value:

-输出：
text:把空调风量调大三挡
domain:空调
intent:风速调节
mode:风速
object:空调
operate:调高
value:3

### 格式示例 ###
-输入:
text:明天南京有雨吗
domain:天气
intent:查询
object:天气|晴|多云|阴|雨|雾霾|雪|气温
operate:查询
city:
time:

-输出:
text:明天南京有雨吗
domain:天气
intent:查询
object:雨
operate:查询
city:南京
time:明天

### 格式示例 ###
-输入:
text:导航到南京南站
domain:导航
intent:导航
origin:
destination:
strategy:默认|速度优先|费用优先|躲避拥堵|高速优先|不走高速|大路优先
waypoints:

-输出:
text:导航到南京南站
domain:导航
intent:导航
destination:南京南站
strategy:默认

### 格式示例 ###
-输入:
text:去南京南站顺便路过玄武湖
domain:导航
intent:导航
origin:
destination:
strategy:默认|速度优先|费用优先|躲避拥堵|高速优先|不走高速|大路优先
waypoints:

-输出:
text:去南京南站顺便路过玄武湖
domain:导航
intent:导航
destination:南京南站
strategy:默认
waypoints:玄武湖


### 格式示例 ###
-输入:
text:从南京南站去镇江南站最快的路
domain:导航
intent:路径规划
origin:
destination:
strategy:默认|速度优先|费用优先|躲避拥堵|高速优先|不走高速|大路优先
waypoints:

-输出:
text:从南京南站去镇江南站最快的路
domain:导航
intent:路径规划
destination:镇江南站
strategy:速度优先

### 关键规则 ###
1. 只能在给定的槽位范围内填充,不能增加新的槽位
2. 若槽位给出可选项,则只能在选项范围内选择,不能增加新的选项
3. 若槽位没有给出可选项,则需要根据文本进行提取
4. 提取内容要结合槽位的意义
5. 若无法提取有效的槽值,则不输出该槽位

"""